package com.wanjia.estate.constant.tex;

import lombok.AllArgsConstructor;

import java.util.Arrays;
import java.util.Objects;

@AllArgsConstructor
public enum Status {
    STATUS00("00", "外部数据接收完成(接收即返回)"),
    STATUS01("01", "数据校检不通过(提示:申报信息校验不通过,请至线下办理)"),
    STATUS02("02", "婚姻比对不通过(提示:申报信息比对不通过,请至线下办理)"),
    STATUS03("03", "家庭成员比对不通过(提示:申报信息比对不通过,请至线下办理)"),
    STATUS04("04", "住房套次比对不通过(提示:申报信息比对不通过,请至线下办理)"),
    STATUS10("10", "提交流程启动,"),
    STATUS11("11", "审核通过(存量房特有) (非推送状态)"),
    STATUS12("12", "存量房交易纳税评估中 (存量房特有)(非推送状态)"),
    STATUS13("13", "存量房交易纳税评估通过(存量房特有)"),
    STATUS14("14", "审核不通过(存量房特有)(提示:申报信息审核不通过,请至线下办理)(非推送状态)"),
    STATUS15("15", "存量房交易纳税评估不通过(存量房特有)(提示:存量房交易纳税评估不通过,请至线下办理)"),
    STATUS20("20", "冻结"),
    STATUS30("30", "作废"),
    STATUS40("40", "完结审核通过(无需推送)"),
    STATUS50("50", "申报失败 (提示:申报信息审核不通过,请至线下办理)"),
    STATUS60("60", "申报信息确认单待打印"),
    STATUS70("70", "申报成功"),
    STATUS80("80", "申报放弃(提示:纳税人申报信息未确认,请至线下办理)"),
    STATUS90("90", "缴款完成");

    private final String code;
    private final String desc;

    public String code() {
        return code;
    }

    public String desc() {
        return desc;
    }

    public static Status get(String code) {
        return Arrays.stream(values())
                .filter(s -> Objects.equals(s.code, code))
                .findFirst()
                .orElse(null);
    }
}
